﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data;
using System.Data.SqlClient;

namespace 晨曦超市管理系统
{
    public class Reusing
    {
        //退出函数
        public static void TuiChu()
        {
            DialogResult ff = MessageBox.Show("是否退出该系统", "系统提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            if (ff == DialogResult.No)
            {
                return;
            }
            Application.Exit();
        }
        //显示
        public static void XianShi(DataGridView dataGridView, string sqlstr, DataTable dt)
        {
            dt = DBHelper.GetDataTable(sqlstr);
            dataGridView.AutoGenerateColumns = false;
            dataGridView.DataSource = dt;
        }
        //删除
        public static void ShanChu(DataGridView dataGridView, DialogResult shanchu)
        {
            switch (shanchu)
            {
                case DialogResult.No:
                    break;
                case DialogResult.Yes:
                    for (int i = dataGridView.SelectedRows.Count; i > 0; i--)
                    {
                        string ID = (dataGridView.SelectedRows[i - 1].Cells[0].Value).ToString();//这个直接取到我选中的行了
                        //也可以转成string的
                        //int ID = Convert.ToInt32(dataGridView1.SelectedRows[i - 1].Cells[0].Value);
                        //这个他把obj值转成了int了
                        dataGridView.Rows.RemoveAt(dataGridView.SelectedRows[i - 1].Index);
                        string sqlstr = "delete from ProfferBill where SupplierID='" + ID + "'";//主要是这里取到了我选中的值
                        int s = Convert.ToInt32(DBHelper.QEX(sqlstr));
                        if (s != 0)
                        {
                            MessageBox.Show("成功删除选中行数据！");
                        }
                    }
                    break;
            }
        }
        //刷新
        public static void ShuXin(DataGridView dataGridView, string sqlstr, DataTable tale)
        {
            tale = DBHelper.GetDataTable(sqlstr);
            dataGridView.DataSource = tale;
        }

        //下拉
        public static void XiaLa(ComboBox comboBox, string Lie1, string Lie2, DataTable dt, string sqlstr)
        {
            try
            {
                comboBox.Items.Clear();
                //string sqlstr = "select Name,UserNameID from informationOfEmployees";
                dt = DBHelper.GetDataTable(sqlstr);
                if (dt.Rows.Count > 0)
                {
                    comboBox.DataSource = dt;//给下拉框动态绑定数据
                    //！！！下拉框有两个属性 一个显示值，一个value值(value一般为显示值在数据库中相应的代码)
                    comboBox.DisplayMember = string.Format("{0}", Lie1);//给下拉框设置显示值，StuClassName为列名
                    comboBox.ValueMember = string.Format("{0}", Lie2);//给下拉框设置value,StuClassID为列名 value值可通过cbStuClassID.SelectedValue.ToString()获取

                }
                else
                    comboBox.Items.Clear();
            }
            catch (Exception ex)
            {
                //捕获到了异常则提示
                MessageBox.Show(ex.Message);
            }
        }

        //树形图
        public static void ShuXing(TreeView tvtype,string sqlstr) 
        { 
                tvtype.Nodes.Clear();
                //string ALLDATsqlstr = "select * from Type order by TypeID";
                DataTable dt = DBHelper.GetDataTable(sqlstr);
                foreach (DataRow drdt in dt.Rows)
                {
                    string a = drdt["ParentID"].ToString();

                    if (drdt["ParentID"].ToString() == "")
                    {
                        TreeNode root =tvtype.Nodes.Add(drdt["TypeName"].ToString());
                        root.Name = drdt["TypeID"].ToString();
                        DataRow[] arrRow = dt.Select("ParentID=" + drdt["TypeID"].ToString() + "");
                        foreach (DataRow item in arrRow)
                        {
                            root.Nodes.Add(item["TypeName"].ToString());
                        }
                    }
                }
            }
        }
    }
/*
      protected void Bind_Tv(DataTable dt, TreeNode p_Node, string pid_val, string id, string pid, string text)
      {
          DataView dv = new DataView(dt);//将DataTable存到DataView中，以便于筛选数据
          TreeNode tn;//建立TreeView的节点（TreeNode），以便将取出的数据添加到节点中
          //以下为三元运算符，如果父id为空，则为构建“父id字段 is null”的查询条件，否则构建“父id字段=父id字段值”的查询条件
          string filter = string.IsNullOrEmpty(pid_val) ? pid + " is null" : string.Format(pid + "='{0}'", pid_val);
          dv.RowFilter = filter;//利用DataView将数据进行筛选，选出相同 父id值 的数据
          foreach (DataRowView row in dv)
          {
              tn = new TreeNode();//建立一个新节点（学名叫：一个实例）
              if (p_Node == null)//如果为根节点
              {
                  tn.Value = row[id].ToString();//节点的Value值，一般为数据库的id值
                  tn.Text = row[text].ToString();//节点的Text，节点的文本显示
                  tvtype.Nodes.Add(tn);//将该节点加入到TreeView中
                  Bind_Tv(dt, tn, tn.Value, id, pid, text);//递归（反复调用这个方法，直到把数据取完为止）
              }
              else//如果不是根节点
              {
                  tn.Value = row[id].ToString();//节点Value值
                  tn.Text = row[text].ToString();//节点Text值
                  p_Node.ChildNodes.Add(tn);//该节点加入到上级节点中
                  Bind_Tv(dt, tn, tn.Value, id, pid, text);//递归
              }
          }
      }
        * */
